Medication clock

ABSTRACT

A medication clock for producing a record of a patient in complying with a medication schedule. A data base is provided which stores the time and date of each medication that the patient takes including those medications taken in response to an alarm by the clock as well as medications taken by the choice of the patient. The dosage schedule may be programmed by reading of information written by the pharmacist.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to devices which inform patients of thetime that each dosage of medication is to be taken under a programmedschedule to assure compliance with prescribed medication takingschedules.

2. Description of the Prior Art

The self-administration of prescribed medications has been and is aproblem throughout the world. It is well known that the patient responseto prescription medications would be much greater if patients in factfollow the directions, including dosage schedule, for takingprescription medicines specified by physicians.

Surveys indicate that 3% to 5% of hospital admissions are the result ofadverse drug reactions. At least one publication has stated that themisprescription of medications by the aged may be responsible for 30,000deaths and 1.5 million hospital admissions per year. The cost ofhospital admissions caused by the improper taking of medications isconservatively estimated to be at least $1 billion per year and, infact, may be much higher when lost employment and other indirect costsare considered.

Adverse drug reactions are directly related to the number and frequencyof doses of medication which are taken. The inability to take drugs inaccordance with prescribed routines may in fact substantially increaseadverse drug reactions.

It is a well-known fact that the elderly are especially prone to notcarefully following the instructions for the taking of medication. Theconsequences of not properly following the instructions for taking amedication can be espescially harmful to the elderly because of thelikelihood that they are taking multiple prescription medications whichcan interact adversely if not properly taken and further that the levelof general physical infirmity in the elderly reduces their ability towithstand the effects of improperly taking medication.

Systems are known for dispensing medication under the control of atimer. Exemplary of these systems are those described in U.S. Pat. Nos.4,382,688, 4,293,845, 4,275,384, 4,258,354 and 4,223,801.

U.S. Pat. No. 4,382,688 describes a medicinal dispenser having anelectronic timer which is used to remind the patient when it is time totake a medication stored in a container associated with the timer.

U.S. Pat. No. 4,293,845 discloses a timer for controlling the taking ofdosages of medication for multiple patients. The system totallizes thenumber of dosages which have been taken by each patient.

U.S. Pat. No. 4,275,384 discloses a portable medicine cabinet with atimer for informing the patient when it is time to take any one of aplurality of medications which are stored within the cabinet. Thissystem includes individual indicators in proximity to compartmentsprovided within the cabinet for storing medications to indicate that itis time to take that particular medication.

U.S. Pat. No. 4,258,354 discloses a portable alarm device for indicatingthat it is time for a patient to take medications stored within aplurality of compartments provided within the portable alarm device. Thetimes for taking the individual medications may be programmed by a filmstrip which is perforated at the hours that each of a plurality ofmedications are desired to be taken by the patient.

U.S. Pat. No. 4,223,801 discloses an automatic periodic pharmaceuticalpreparation dispenser for alerting patients when particular medicationsare to be taken.

SUMMARY OF THE INVENTION

The present invention provides an improved medication clock which hasadvantages over the prior art systems. In accordance with the invention,the times for taking individual dosages are easily programmable by evenpersons having physical infirmities which prevent or interfere with theprogramming of the prior art systems. A memory provided in conjunctionwith the programmable timer records the time and date for the taking ofeach of the medications being dispensed under the control of the timer.The storage in memory of when the patient takes each dosage of themedication provides an attending physician or other personnel with theability to analyze the patient's schedule of taking various prescribedmedications and the number of dosages taken which can be invaluable fordiagnostic or other purposes in analyzing a patient's response tomedications. By the use of a printer or other suitable output device, apermanent record can be obtained of the patient's time of taking eachdosage of the medications from the memory to provide information in aform which is readily storable in a patient's medical records by theattending physician. Further in accordance with the invention, for thosepatients who are particularly infirm, a memory is provided for storingthe identity, number of dosages and time intervals between dosages forcommonly prescribed medications which is utilized to automaticallyprogram the time intervals for taking these commonly prescribedmedications in response to the patient's causing a coded message to beread. This method of programming eliminates the requirement formanipulating many input controls and in conjunction with the othermemory storage capability of storing the identity and time of takingparticular medications permits an accurate monitoring system for thetaking of medications under prescription which is not intimidating topatients who are either too infirm or otherwise too uncomfortable withinputting a program for taking individual prescription medications.

A medication clock in accordance with the invention includes a pluralityof compartments with each compartment being separately used for holdingone or more medications to be dispensed, the medications being chosenfrom prescription medications which have individual dosages to be takenat specific times, prescription medications to be taken under thecontrol of the patient on an as needed basis and non-prescriptionmedications to be taken under the control of the patient; a programmabletimer for producing a medication dispensing signal indicating the timesduring the day that a patient is to take one or more medications; analarm responsive to the medication dispensing signal produced by theprogrammable timer for alerting the patient that it is time to take aparticular medication, the alarm including a tone generator and aseparate visual display indicator located in proximity to each of thecompartments, the tone generator producing an audible tone in responseto the medication dispensing signal and the visual display indicator inproximity to the compartment associated with the medication to be takenproducing a visual indication in response to the medication dispensingsignal; a patient acknowledgment switch located in proximity to each ofthe compartments which each are separately activatable by a patient toproduce a patient acknowledgment signal that a medication(s) stored inthe compartment in proximity to the patient acknowledgment switch hasbeen taken; a memory coupled to the programmable timer and to eachpatient acknowledgment switch for storing the time and date of eachpatient acknowledgment signal as an identification of the medicationtaken, and the time and date of taking each dosage by the patient; andan output coupled to the memory for providing a record of theidentification of the medication taken and the time and date of eachdosage of the medication taken by the patient for each of themedications being taken by the patient including the medications underthe control of the programmable timer.

The invention further includes, a scanning device which is coupled tothe programmable timer for reading information for controlling theprogramming of the identification of the medication to be taken, thetime that each dosage is to be taken and the number of dosages and aprogrammed microprocessor responsive to the information read by thescanning device for causing the programmable timer to be programmed tosignal the time for taking each dosage of the medication which is beingtaken under the control of the programmable timer which has beenprogrammed under the control of information read by the scanning device.

Preferably, the information read by the scanning device is the beginningaddress of a block of memory in a read only memory (ROM) which storesthe identity of the medication to be taken, the number of dosages to betaken and the time between dosages of the medication. A preprogrammedROM is provided containing a plurality of storage blocks which each haveseparate beginning addresses which are individually addressable by theread memory address, each storage block storing the identification of adistinct medication to be taken, the time between dosages and the numberof dosages to be taken. The programmable timer is programmed forsignaling the time for taking of any medication whose identity is storedat one of the memory blocks in conjunction with the time between dosagesand the number of dosages stored at that one memory block whosebeginning memory address was read by the scanning device. Each storageblock for a medication may also include an identification of othermedications which are incompatible with that medication. A routinecomparison with the other medications which have dosage schedules whichhave been previously programmed can be used to reveal incompatibilities.Preferably, the actual time for taking individual dosages is determinedby computing the times for taking each dosage of the medication basedupon the desired time for taking the first dosage and the number ofdosages and the time between dosages read from the preprogrammed ROM.The invention further includes a speech synthesizer for producing asynthesized voice message that informs the patient of the identity ofthe medication to be taken and instructions for taking the medication inresponse to a medication dispensing signal for indicating that it istime to take any medication having dosage times which have beenprogrammed in accordance with the information contained at a memoryblock. Each storage block has stored therein information for creating avoice synthesized message to be produced by the speech synthesizer inresponse to a medication dispensing signal of the medication to be takenand the instructions for taking the medication.

The speech synthesizer may also be used to announce to the patient thatit is time for the patient to take a medication located in a particularcompartment in response to the medication dispensing signal.

Further in accordance with the invention, a video message generator maybe provided which is activated in response to the medication dispensingsignal to generate a video display on the patient's television set orother video display.

Further in accordance with the invention, a record forming device, suchas a printer, may be coupled to the output for providing a record of thetime and date of each dosage of each medication taken or not taken by apatient.

The invention may also be used to monitor other vital signs of thepatient, such as blood pressure, pulse rate and temperature. Preferably,a blood pressure measuring device, a pulse rate measuring device and atemperature measuring device is coupled to the memory for storing thetime, date and value of each of the aforementioned vital signs as theyare read by the patient.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a top view of a medication timer in accordance with theinvention.

FIG. 2 is a front view of a medication timer in accordance with theinvention.

FIG. 3 is a side view of a medication timer in accordance with theinvention.

FIG. 4 is an electrical schematic of the present invention.

FIGS. 5(a) and 5(b) respectively illustrate a memory map of the ROM ofFIG. 4 and the information stored in a single addressable storage blockof the ROM.

FIGS. 6 illustrates a memory map of the RAM memory of FIG. 3 which isused for storing the time and date of taking each dosage of each of themedications being taken by the patient under the control of the timerand the information stored in each one of the addressable storagelocations associated with a particular medication being taken.

FIGS. 7-12 illustrate a flowchart of the preferred form ofmicroprocessor control program used with the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention provides an improved medication clock which iseasily programmable to signal the times for taking each dosage of aplurality of medications from a plurality of compartments and creates adata base for subsequent review by an attending physician or otherpersonnel of the patient's history of taking each of the medications. Inaddition, the programming of the identification of the medicines to betaken, the number of dosages and the time of taking each dosage can beaccomplished for commonly prescribed medications by the patient'scausing the reading of a code, which is the beginning address of a blockof memory locations storing programming information, provided on or inconjunction with the prescription filled by the pharmacist. The codedaddress is used to fetch the requisite programming information from oneof the memory blocks in the preprogrammed ROM to program the clock witha timed alarm for indicating that it is time to take each dosage of themedication.

FIGS. 1-3, respectively, illustrate top, front and side views of amedication clock 10 in accordance with the present invention. A housing12 contains a plurality of compartments 14 each for the storage of oneor more medications 15 which are dispensed at least in part under thecontrol of a timer described in detail, supra. The compartments areillustrated as open bins, but may be closable by appropriate closingdevices. A number 17, which is associated with each compartment 14, isused to identify the medication in the data base which is described indetail, infra. One or more of the compartments 14 may be used to storenonprescription medications or prescription medications to be taken onan as needed basis. For example, the compartment 14 associated with thecompartment identifying number "6" may store prescription medications tobe taken as needed. The front face of the housing contains a clock 18which provides an output of the time 20, the month 22, the date 24, andthe day of the week 26. Any conventional microprocessor based clockwhich performs the aforementioned functions may be used with the presentinvention. A multiposition switch 28, which preferably has twelvepositions, is used by the patient to activate the various functionalmodes of the present invention. The individual modes of operation whichmay be selected by the patient are described in detail in conjunctionwith the flowchart in FIGS. 7-12 of the microprocessor control programused for the present invention. An alarm controlled by themicroprocessor based clock 18 is provided for notifying the patient thatit is time to take a particular medication or medications containedwithin one of the six compartments 14. The alarm preferably includes anaudio tone generator which causes an audible tone to be emitted byspeaker 30 and a visual indicator 32 in the form of a pulsating lightwhich is in proximity to the compartment 14 within which the medicationto be taken is stored at the time that the alarm is activated.Nonprescription medications or prescription medications to be taken onan as needed basis, which are stored in one or more of the compartments14, are taken under the patient's own actions without activation of thealarm. Each visual indicator 32 preferably is a light which pulsateswhen the alarm signals that it is time to take a particular medicationor medications. A patient acknowledgment indicator 34 (FIG. 4) in theform of a patient activated switch is associated with each visualindicator 32. For medications which are taken in response to the alarmfunction, the patient acknowledgment indicator 34 is activated by thepatient's touching of the pulsating visual indicator 32 to cause it togo off and the audio tone generator to cease operating. For medicationstaken without the alarm, the patient acknowledgment indicator 34 isactivated when the patient decides to take the medications. The patientacknowledgment indicator 34 produces a patient acknowledgment signalwhich performs the function described in detail, infra, of causing theentry of the identification of the medication taken in terms of thenumber of the storage compartment 14 containing it, and the time anddate that the medication was taken for the purpose of updating thepatient's medication dosage history. When the multiposition switch 28 isin the appropriate position, the closing of a medication check switch 36by the patient causes the display of the next programmed time thatmedication is to be taken in conjunction with an identification of therespective medication compartment in which the medication to be taken islocated by the activation of the associated visual indicator 32. Thedisplay of the subsequent times for taking each medication are producedby each subsequent closure of the medication check switch 36. A switch38 is activated by the patient to set either the hours or the month ofthe clock 18 depending upon the position of the multiposition modeswitch 28 as described, infra, in the discussion of the microprocessorcontrol program. A switch 40 is activated by the patient to set eitherthe date 24 or the minutes of the clock 18 depending upon the positionof the multiposition mode switch 28 as described, infra, in conjunctionwith the microprocessor control program. An entry switch 42 is locatedon the side of the housing 12 for entering the various inputs which havebeen set in the switches described, supra. A low battery test switch 44is also located on the side of housing 12 which is activated by thepatient to determine if the batteries have discharged to a point wherethey should be replaced. Low battery indicator 46 is activated when thebattery has discharged to a point requiring replacement. Programindicator 48 signals that the programming of the alarm functions hasbeen completed when the multiposition mode switch 28 has been switchedto position 0 as described, infra, in conjunction with the flowchart. Acode reader 50 (FIG. 3) is located on the side of housing 12 which isprovided for reading an encoded beginning memory address of a block ofmemory used for storing information used for programming the alarmfunction which is encoded on or in conjunction with a prescription whichis to be dispensed under the control of the present invention.Preferably, the code reader is a commercially available unit such as theIntermoc Model 9300, Part 039253, for reading the universal bar codeused in conjunction with the identification of numerous products forpurposes of merchandising. An output (not illustrated) is also providedon the side of the housing 12 for permitting the connection of a recordforming device such as a printer to the data base contained within theRAM described, infra, for the purpose of forming a permanent patienthistory of the time and date of taking of each dosage of the prescribedmedications, including as needed medications and nonprescriptionmedications. Preferably, the output may be an RS232 interface to permitthe connection of a printer to the RAM for generating the permanentpatient history. It should be understood that the various switches andother functions contained in the housing 12 may be relocated withoutdeparting from the present invention.

FIG. 4 illustrates an electrical schematic of the present invention. Aprogrammed microprocessor including a clock with a programmable alarm 54is used for controlling the programmable functions of the presentinvention. Any conventional microprocessor may be used in theprogramming of the control functions of the present invention asdescribed, infra, in conjunction with FIGS. 7-12. The multiposition modeswitch 28 is selectively located in any one of 11 positions (position 12is not used) to activate the different functional modes of the operationand programming of the present invention. The details of the usage ofparticular switch positions to operate different modes of the inventionare described in detail, infra, in conjunction with the flowchart ofFIGS. 7-12. Entry input switch 42 is depressed by the patient to enterdata for programming purposes for the various modes described, infra, inconjunction with the flowchart. A ROM 56 is connected to themicroprocessor 54 for providing preprogrammed information forprogramming the dosage, times and number of dosages of commonlyprescribed medications, the operating system of the invention, speechsynthesis data and the initial time and date information when the clockfunction is first activated. The details of the ROM 56 are described,infra, in conjunction with FIGS. 5(a) and 5(b). A RAM 58 is connected tothe microprocessor 54 for storing the data base of the patient historyof taking medications being dispensed under the control of theinvention. In addition, the RAM 58 stores other necessary variable dataused for the programming of the times for activating and operation ofthe alarm function of the present invention. Preferably, a total of sixpatient acknowledgment switches 34 (one for each compartment 14) areprovided for signalling the microprocessor 54 that a particular one ofthe medications being taken under the programmed timing cycle of thepresent invention or under the patient's own volition (nonprescriptionor prescription as needed medications) has been taken by the patient.Associated with each patient acknowledgment switch 34 is a latch, suchas a flip flop, which stores the patient acknowledgement signal untilreset by the microprocessor 54. The latches perform the function ofstoring all patient acknowledgment signals, including those generated inresponse to the signaling of an alarm and those which are generated bythe patient, when prescriptions are taken on a as needed basis andnonprescription medications which are stored in the compartments 14 arealso taken. As has been described, supra, the individual switches 34 arelocated in proximity to the compartment 14 which contains the medicationbeing taken, and are activated to cause the entry into the data basestored in the RAM 58 of the identification of the medication and thetime and date at which the medication was taken for purposes ofproviding a permanent data record of the patient's history of taking theprescribed medications. The code reader 50 is connected to themicroprocessor 54 to provide an input of the beginning address of ablock of memory in the ROM 56 at which the identification, number ofdosages, and the time between which each dosage is to be taken forcommonly prescribed medications and speech synthesis information usedfor synthesizing a speech message, including medication identificationand dosage instruction, are found. Preferably, the code reader 50 isdesigned to read the universal bar code. The activation of the codereader 50 is under the control of the multiposition mode switch 28 andis described, infra, in conjunction with the flowchart. A multiple toneaudio alarm 60 is activated by a medication dispensing signal which isgenerated when the programmed time for signaling the dispensing ofmedicine agrees with the actual time of the clock 20. The multiple toneaudio alarm contains the speaker 30 described, supra. Preferably, themultiple tone audio alarm generates a tone which cylces smoothly betweenlow and high frequency to produce an easily heard audio alarm for eventhose patients who have difficulties in hearing. The details of thecircuitry for producing the tone which smoothly cycles between low andhigh frequency do not per se, form part of the present invention and arein accordance with well known oscillator circuitry. For medicationstaken under the control of the programmed dosage times, themicroprocessor 54 also activates one of the visual indicators 32 whichidentifies the compartment 14 within which the particular medication ormedications which are to be taken are located. The individual indicators32 are pulsated to make them easily visible to the patient. Thepulsation of the lights is driven by a relaxation oscillator or othertype of oscillator which is keyed into operation by the aforementionedmedication dispensing signal generated when the actual time is inagreement with the programmed time for taking a particular medication ormedications. The microprocessor 54 drives an LED display 62 forindicating the time 20, month 22 and date 24 as described in conjunctionwith FIG. 1, supra. In addition, the day 26 is activated by a singlelight which is not illustrated. A voice synthesizer 64 is activated bythe generation of the aforementioned medication dispensing signal toprovide a suitable voice synthesized message to the patient. In the modeof operation where the patient manually programs each of the times whenthe medications are to be taken, the voice synthesized message ispreferably a vocal statement to the effect that "it is time to take themedication in compartment number ₋₋ ". When the dispensing times areprogrammed in accordance with the mode of operation using the codereader 50 to cause the programming of the identification, number ofdosages and time for taking the dosages with information from the ROM56, the voice synthesizer 64 is used to state that it is time to takemedication and further state the general instructions for taking themedication including identification of conditions for taking themedication with regard to mealtimes, etc. and further the location ofthe medication if it must be obtained from a location other than thecompartments 14 such as a refrigerator. Data base outputs 52 are coupledto the RAM 58 through the microprocessor 54 to permit the reading of thepatient's accumulated dosage history of taking prescribed medications,including medications on an as needed basis and nonprescriptionmedications. The data base outputs may be in many different forms andinclude the aforementioned RS232 interface for a printer. The details ofthe particular outputs are not part of the invention per se and may takeany well known form. Additionally, one or more auxiliary alarms 66,which are activated by the aforementioned medication dispensing signal,may be provided for further signalling the patient that it is time totake medication. The auxiliary alarms are particularly useful when thepatient is hard of hearing, is not in visual contact with the indicators32 or is located in a remote location. Without limitation, the auxiliaryalarms may be a message generator for producing a message to bedisplayed on the bottom of the patient's television screen that it istime to take medication, an audio message to be generated on thepatient's radio or stereo system, an audio message to be produced by apaging system or a transmitter for producing a signal to activate aremote alarm. Circuitry for implementing each of these auxiliary alarmsis known or within the skill in the art and, per se, does not form partof the present invention. A temperature monitor 68 is coupled to themicroprocessor 54 for providing temperature data, including thetemperature reading and time and date of taking the temperature readingfor storage in the RAM 58. A blood pressure monitor 70 is coupled to themicroprocessor 54 for providing blood pressure data, including the bloodpressure reading and time and date of taking of the blood pressurereading for storage in the RAM 58. A pulse rate monitor 72 is coupled tothe microprocessor 54 for providing pulse data, including the pulse rateand time and date of taking of each pulse rate reading for storage inthe RAM 58.

FIGS. 5(a) and 5(b) illustrate the details of the blocks of information100 stored in ROM 56 used for programming the times that each dosage ofa medication is to be taken, etc. The portion of the ROM 56 used for thegeneral operating system and specifying initial conditions of the clock18, etc. is not illustrated. FIG. 5(a) illustrates a memory map of theindividual blocks of programming information 100 of ROM 56. The ROM 56contains a plurality of addressable storage blocks 100 of information1-N which each have a distinct beginning address which is addressed bythe address code detected by the code reader 50. Each storage block 100has a sufficient number of individual bits to permit the storage of theinformation described in conjunction with FIG. 5(b). FIG. 5(b)illustrates the information which is typically stored in each of theindividual storage blocks 100. Contained in each storage block 100 isthe identification of the medication which is typically one of thecommonly available prescription medications to be taken which hasindividual dosages automatically programmed by the present invention bythe reading of the address by code reader 50. The information used forforming a speech synthesized message which is produced by voicesynthesizer 64, the number of dosages to be taken and the time intervalbetween dosages is also stored at each block 100. Programming of thetimes for the activation of the alarm to signal the taking of any of themedicines which have information stored in the addressable storagelocations 1-N of FIG. 5(a ) is accomplished under the control of themicroprocessor in response to the reading of the beginning address bythe code reader 50 of the particular block 100 associated with themedication to be taken in the manner described, infra. It is within thescope of the invention to store other pertinent data in thepreprogrammed storage locations of FIG. 5(a).

FIG. 6 illustrates a memory map of the RAM 58. The RAM 58 is used forthe storage of the patient's history of the taking of medicationsincluding those under the control of the alarm of the present invention.The RAM 58 includes a plurality of memory blocks 102 which are at leastequal in number to the number of compartments 14 contained in thehousing 12 and in addition, provides storage for the temperature, bloodpressure and pulse rate functions 68, 70 and 72, respectively described,supra, with regard to FIG. 4. Each patient acknowledgment indicator 34is associatd with a particular memory block 102 to compile in thatmemory block the patient's record of the taking of a particularmedication from the compartment associated with the associated patientacknowledgment indicator. Additionally, the RAM 58 includes additionalstorage locations 100 for storing other information for programming orperforming of the alarm functions including the programming of theparticular dosage intervals either manually by the patient or under thecontrol of the automatic programming mode described with reference toFIGS. 5(a) and 5(b), supra.

FIGS. 7-12 illustrate a flowchart of the microprocessor control programutilized by the microprocessor 54 described above with regard to FIG. 4.It should be understood that any commercially available microprocessormay be used for implementing the control program described inconjunction with the flowchart. The program starts at point 200 wherereset and initialization occurs. The program proceeds to point 201 wherean interruption routine is entered for updating the time of themicroprocessor based clock 18. The specific steps of the interruptionroutine 201 are discussed, infra, with regard to FIGS. 8-9. Theinterruption routine is run at a basic rate of 100 Hz to update theclock function at a 100 Hz rate. The interruption program proceeds frompoint 228 to point 230 where a 100 Hz input is received which is thebasic rate for updating the clock function. The receipt of each pulsecauses the updating of the clock function to occur. The program proceedsto decision point 232 where a determination is made if a command hasbeen received to update the time. If the answer is "no" at decisionpoint 232, the program branches to point 234 where the program returnsto the main program at point 202 to be described, infra. If the answeris "yes" at decision point 232, the program branches to point 236 wherea determination is made if a command has been entered to increment theseconds register. The progra proceeds to decision point 238 where adetermination is made if the seconds register is equal to 60. If theanswer is "no" at decision point 238, the program branches to point 234where the program branches back to point 202. If the answer is "yes" atdecision point 238, the program proceeds to point 240 where the secondsregister is set to zero. The program proceeds to point 242 where theminutes register is incremented by 1. The program proceeds to decisionpoint 242 where a determination is made if the minutes register is equalto 60. If the answer is "no" at decision point 242, the program branchesto point 234 where the program returns to the main program at point 202.If the answer is "yes" at decision point 242, the program branches topoint 244 where the minutes register is set equal to zero. The programproceeds to point 246 where the hours register is incremented by 1. Theprogram proceeds to decision point 248 where a determination is made ifthe hours register is equal to 13. If the answer is "no" at decisionpoint 248, the program branches to point 234 where a return is made tothe main program at point 202. If the answer is "yes" at decision point248, the program branches to point 250 where the hours register is setequal to zero. The program proceeds to point 252 where the day registeris incremented by 1. The program proceeds to decision point 254 where adetermination is made if the day register is equal to 7. If the answeris "no" at decision point 254, the program branches to point 234 where areturn is made to the main program at point 202. If the answer is "yes"at decision point 254, the program branches to point 256 where the dayregister is set equal to zero. The program proceeds to point 258 wherethe day of the week is incremented by 1. The day register is used forthe activation of the display of the day at point 26 of FIG. 2. Theprogram proceeds to point 260 where the date is incremented by 1. Theprogram proceeds to decision point 262 where a determination is made ifthe date is equal to the last day of the month. If the answer is "yes"at decision point 262, the program branches to point 264 where the monthregister is incremented. The program proceeds then to point 234 wherethe program branches back to the main program at point 202. If theanswer is "no" at decision point 262, the program branches to point 234where the program branches back to the main program at point 202.

At the end of each clock function update cycle the program proceeds toblock 202 to reenter the main program where the position of themultiposition mode switch 28 of FIG. 3 is read. There are a total of 11switch positions which are actually read with the twelfth position notbeing used. The determination that a switch is in a particular positionis used to call a subroutine which is described in detail, infra.

The program proceeds to decision point 204 where a determination is madeif the multiposition mode switch 28 is in the zero position. The zeroposition provides a built-in safety feature which prevents tamperingwith the information which has been programmed into the microprocessorby the program modes described, infra. When the multiposition modeswitch 28 is in the zero position, the invention functions as programmedto provide alarms for indicating when one or more medications are to betaken under the program control while automatically entering theidentity of the medicine taken, the time that it was taken and the datethat it was taken into the RAM 58 in response to the depressing of thepatient acknowledgment switch 34. If the answer is "yes" at decisionpoint 204, the program proceeds to point 206 (FIG. 10) where a search ismade of the RAM 58 to fetch the programmed alarm times for testing ifany of the medications which are to be dispensed under the timedprogrammed control are to be currently dispensed by the generation of analarm. The program branches to decision point 208 where a determinationis made if in fact any of the fetched alarm times for indicating thedispensing of medicine matches the current time. If the answer is "no"at decision point 208, the program proceeds to point 209 where each ofthe latches associated with the patient acknowledgment signals is read.If any of the latches has been set, the identification of the medicationin the compartment 14 associated with the medication which as been takenand the time and date of taking each dosage is stored in the appropriateblock 102 of the RAM 58. The latches are reset after they are read andthe data has been stored in the RAM 58. The program proceeds to point210 (FIG. 11) where a search is made of RAM 58 to determine if thegeneral alarm function of the clock has been set. The general alarmfunction is the alarm function performed by a conventional clock. Theprogram proceeds to decision point 212 where a determination is made ifthe time fetched at decision point 210 is equal to the current time. Ifthe answer is "yes" at decision point 212, the program branches todecision point 214 where a determination is made if the alarm 60 is on.If the answer is "no" at decision point 214, the program branches todecision point 216 to be described, infra. If the answer is "yes" atdecision point 214, the program branches to decision point 218 where themultiple tone audio alarm 60 is activated. The program proceeds todecision point 220 where a determination is made if the alarm 60 hasbeen shut off. The multiple tone audio alarm includes a switch containedwithin the multiple tone audio alarm 60 of FIG. 4 which is used to shutoff the alarm and provide a signal to the microprocessor signaling thatthe alarm has been turned off. If the answer is "no" at decision 220,the program proceeds to point 222 where the alarm is activated for aperiod up to 5 minutes. After the elapsing of 5 minutes, the programwill automatically disable the alarm. The program proceeds from point222 to point 216 which is described, infra. If the answer is "yes" atdecision point 220, the program proceeds to point 224 where the alarm 60is shut off and the time of activating the alarm is erased from memory.The program proceeds from point 224 to point 216. At point 216 adetermination is made if the battery (not illustrated) is low. If theanswer is "yes" at decision point 216, the program branches to point 226where the low battery indicator 46 is activated. If the answer is "no"at point 216, the program branches to point 202 (FIG. 7) described,supra, where the program proceeds to decision point 208. If the answeris "yes" at decision point 208 (FIG. 10), the previously describedmedication dispensing signal is produced and the program branches topoint 266 where the visual indicator 32 associated with the compartment14 which contains the one or more medicines which are to be taken inresponse to the alarm is activated. The location of the visual indicator32 in proximity to the compartment 14 which contains the medication tobe taken immediately informs the patient of the location of themedication to be taken upon the pulsating of the particular visualindicator. The program proceeds to point 268 where the multiple toneaudio alarm 60 is activated. The program proceeds to point 270 where anyremote alarm device is activated by the activation of a transmitter tocause its activation. The program proceeds to point 272 where data istransferred from the ROM 56 to a conventional video display processorfor the purpose of generating a word message to be displayed at thebottom of the patient's television set by the generation of anappropriately modulated RF carrier which is to be processed by thepatient's television set. The program proceeds to point 274 where the RFmodulated carrier is outputted to the patient's t.v. set. The programproceeds to point 276 where the appropriate speech synthesis data storedin the ROM 56 is outputted to the voice synthesizer 64 to cause thegeneration of a synthesized voice message. If the alarm times have beenprogrammed by the patient, a flag is set to cause the fetching of astandard message from the ROM 56 such as "it is now time to take yourmedicine in compartment number ₋₋ ". If, on the other hand, the timesfor dispensing medication have been set by programming in accordancewith the code read by the code reader 50, the speech synthesisinformation associated with the medication information stored in one ofthe blocks 100 which is to be dispensed is fetched and used forgenerating the synthesized voice message. In order to identify thelocation in memory at which the speech synthesis data is to be fetched,it is necessary to read the code number with the code reader 50 whichidentifies the beginning address of the block of programming information100 in ROM 56. The program proceeds to decision point 278 (FIG. 11)where a determination is made if the patient has responded by thedepressing of the patient acknowledgment switch 34 located in proximityto the compartment 14 containing the medication which is to be taken. Ifthe answer is "no" at decision point 278, the program branches to point280 where the multiple tone audio alarm 60 is activated for a period upto 5 minutes. If the patient acknowledges the taking of the one or moremedications stored in the compartment 14 associated with the visualindicator 32 which is pulsating by activating the associated patientacknowledgment switch 34, the multiple tone audio alarm is immediatelystopped. The multiple tone audio alarm is automatically shut off at theend of 5 minutes. The program then branches to point 202. If the answeris "yes" at decision point 278, the program branches to point 281 wherethe pulsating light 32 associated with the compartment 14 which holdsthe medicine which is to be taken and the multiple tone audio alarm 60is shut off. The program proceeds to point 282 where the identity of themedication taken, the time of taking the medication and the date oftaking the medication is sent to the RAM 58 for storage in theassociated storage block 102 as illustrated in FIG. 6. If the medicationdispensing times have been programmed manually, the identification ofthe medicine is by storage of the compartment number (1-6) 17 of thecompartment 14 holding the medication. If, on the other hand, thedispensing times have been programmed by the reading of a codedbeginning address of the block of programming information 100 by codereader 50, the complete identification of the medicine is stored asstored in the ROM location 100. The program proceeds to decision point284 where a determination is made if a printout or other memory outputfrom the data base outputs 52 has been requested. If the answer is "yes"at decision point 284, the program branches to point 286 where aprintout or other output of one or more of the storage locations 102 isobtained. The program proceeds from point 286 back to point 202 afterthe completion of the printout. It is within the scope of the inventionto permit the person requesting the printout to address one or more ofthe individual storage locations 102 up to the complete number ofstorage locations. If the answer is "no" at decision point 284, theprogram proceeds to point 210 as previously described.

If the answer is "no" at decision point 204, the program branches topoint 288 where a determinatin is made if the multiposition mode switch28 is in the first position. If the answer is "yes" at decision point288, the program branches to a subroutine at which the times foractivating the alarm for each of the medicines to be dispensed from theindividual compartments 14 is set. The program proceeds to point 290where the hour setting switch 38 is depressed to set a display on thehours display of the time indicator 20 of the desired hour of theactivation of the alarm function. Each depressing of the switch 38causes the hour displayed on the time display 20 to be increased. Thepatient stops the depressing of the hour display switch 38 at the timethat the desired hour is displayed on the time display 20. The programproceeds to point 292 where the minutes setting switch 40 is depressedto cause the display of the desired time in minutes at which the alarmfunction for the dispensing of a particular medicine is to be activated.Each time the switch 40 is depressed, the display of the minutes isincreased . The patient stops the depressing of the switch 40 when thedesired number of minutes is displayed on the time display 20. Theprogram proceeds to point 294 where the patient depresses the patientacknowledgment switch 34 associated with the compartment 14 which is tostore the medicine which is to be dispensed at the time which has beenset at blocks 290 and 292. The program proceeds to point 296 where theentry switch 42 is depressed to cause the entering of the desired timefor activating the alarm in the RAM memory 58. The program proceeds topoint 202 as previously described.

If the answer is "no" at decision point 288, the program proceeds todecision point 298 where a determination is made if the multipositionmode switch 28 is in the second position. If the answer is "yes" atdecision point 298, the program branches to a subroutine for setting thetime to activate the general purpose alarm function of the timing devicecontained within the microprocessor 54. The program proceeds to point300 where the hours setting switch 38 is activated in the mannerpreviously described in conjunction with block 290. The program proceedsto point 302 where the minutes setting switch 40 is activated in themanner previously described in conjunction with block 292. The programproceeds to point 304 where the entry switch 42 is closed to cause theentry of the desired time for activating the general alarm function inthe RAM 58. The program proceeds to point 202 as previously described.

If the answer is "no" at decision point 298, the program branches todecision point 306 where a determination is made if the multipositionmode switch 28 is in its third position. If the answer is "yes" atdecision point 306, the program branches to a subroutine for setting thecorrect display time. The program proceeds to point 308 where the hourssetting switch 38 is activated in a manner analogous to that previouslydescribed in conjunction with points 290 and 300. The program proceedsto point 310 where the minute switch 40 is activated in a manneranalogous to that described in conjunction with points 292 and 302. Theprogram proceeds to point 312 where the entry switch 42 is closed tocause the entry of the desired time into the RAM memory 58. The programproceeds to point 202 as previously described.

If the answer is "no" at decision point 306, the program branches todecision point 314 where a determination is made if the multipositionmode switch 28 is in the fourth position. If the answer is "yes" atdecision point 314, the program branches to a subroutine for setting thedesired month and date. The program proceeds to point 316 where themonth setting switch 38 is activated to set the desired month in amanner analogous to the setting of hours described at points 290, 300and 308. The program proceeds to point 318 where the desired date is setby the depressing of the date setting switch 40 in a manner analogous tothe setting of the desired minutes as described at points 292, 302 and310. The program proceeds to point 320 where the entry switch 42 isclosed to cause the storage of the desired month and date in the RAM 58.The program proceeds to point 202 as previously described.

If the answer is "no" at decision point 314, the program branches todecision point 322 where a determination is made if the multipositionmode switch 28 is in the fifth position. If the answer is "yes" atdecision point 322, the program branches to a subroutine which permitsthe display of the next alarm function for indicating that a medicationis to be taken which is located in a particular compartment 14. Theprogram proceeds to point 324 where the switch 36 is depressed to causea display on the time display 20 of the time of the next alarm functionindicating that a medication is to be taken. The program proceeds topoint 202 as previously described.

If the answer is "no" at decision point 322, the program proceeds todecision point 326 where a determination is made if the multipositionmode switch 28 is in the sixth position. If the answer is "yes" atdecision point 326, the program branches to a subroutine for setting thedesired day of the day display 26. The program proceeds to point 328where the switch 40 is depressed to set the desired display of thecorrect day. Each time the switch 40 is depressed, the day is augmentedby 1. When the desired day is displayed on the day display 26, themultiposition mode switch 28 is changed to another position to enteranother mode of operation. The program proceeds to point 202 aspreviously described.

If the answer is "no" at decision point 326, the program proceeds todecision point 330 where a determination is made if the multipositionmode switch is in the seventh position. If the answer is "yes" atdecision point 330, the program branches to a subroutine for reading thepatient's blood pressure by the activation of the blood pressure monitor70. The program proceeds to point 332 where the patient connects theblood pressure sensor to permit the taking of a reading. The programproceeds to point 334 where the entry switch 42 is closed to cause entryof the blood pressure reading which has been read into the part "b" ofsections 102 the RAM of FIG. 6 as illustrated at point 336. The programproceeds to point 202 as previously described.

If the answer is "no" at decision point 330, the program proceeds todecision point 338 where a determination is made if the multipositionmode switch 28 is in the eighth position. If the answer is "yes" atdecision point 338, the program branches to a subroutine for causing thepulse rate of the patient to be monitored. The program proceeds to point340 where the pulse rate monitor is connected to the patient. Theprogram proceeds to point 342 where the entry switch 42 is closed tocause the storage of the pulse rate which has been read in the part "c"of memory sections 102 of FIG. 6 as illustrated at point 334. Theprogram proceeds point 202 as previously described.

If the answer is "no" at decision point 338, the program proceeds todecision point 346 where a determination is made if the multipositionmode switch 28 is in the ninth position. If the answer is "yes" atdecision point 346, the program branches to a subroutine for reading thepatient's temperature. The program proceeds to point 348 where thetemperature monitor is used by the patient to take a reading of thepatient's temperature. The program proceeds to point 350 where switch 42is closed to cause the storage of the temperature reading in part "a" ofmemory sections of 102 of FIG. 6 as illustrated at point 352. Theprogram proceeds to point 202 as previously described.

If the answer is "no" at decision point 346, the program proceeds todecision point 354 where a determination is made if the multipositionmode switch 28 is in the tenth position. If the answer is "yes" atdecision point 354, the program branches to a subroutine which causesthe reading of a coded address contained on or in conjunction with apatient's prescription is as illustrated in FIG. 3 by the code reader50. As stated, supra, the code is the beginning address of the block ofinformation 100 to be used for programming each dosage time of aparticular commonly prescribed medicine. The program proceeds to point356 where the code reader 50 is initialized to permit the reading of thecode. As described above, preferably the code reader is a commerciallyavailable reader designed for reading the universal bar code. Theprogram proceeds to point 358 where the address which has been read bythe code reader 50 is inputted to the microprocessor to permit thefetching from the ROM 56 of the desired programming information in oneof the blocks 100 as described above in conjunction with FIGS. 5(a) and5(b). The program proceeds to point 360 where the beginning memoryaddress of the block 100 in the ROM 56 is read which is addressed by thenumber which has been read by the code reader. The program proceeds topoint 362 where the programming information which has been read from theaddressed block 100 in the ROM memory 56 is entered into the RAM memory58 and the desired times for taking that medication are programmed in amanner analogous to the patient activated subroutines described abovewith regard to the setting of the time for activating the alarm functionto indicate that a medication should be taken. Further in accordancewith this mode of operation, incompatibility between medications can bechecked prior operation. Each location 100 of the ROM 56 can beprogrammed to store the identification of other medications which shouldnot be taken in conjunction with the particular medication stored at thelocation. The storage of the identification of incompatible medicationscan be by the address 100 of FIG. 5(a) such as "1", " 2", etc. Then acomparison step can be made such that the number of the medicationswhich are already programmed to be taken as stored in the ROM can becompared with the medication to be taken in accordance with the storedprogramming information stored in one of the memory blocks. When anincompatibility is detected by agreement between previously programmedmedications and the medication to be taken, an alarm may be activatedand the incompatibility can be entered into the RAM data base. If theanswer is "no" at decision point 354, the program proceeds to decisionpoint 202 as previously described.

The choice of the medications which are to be included within the ROMmemory 56 to implement the programming feature activated by the readingof the beginning memory address of a particular block of programminginformation 100 by the code reader 50 is a matter of choice whichultimately is only limited by the amount of memory available in ROM 56which is contained in the implementation of the invention. As apractical matter, approximately the top 100 prescriptions account forapproximately 70% of the prescriptions being written. Additionally,there are approximately 600 base medications which are prescribed andapproximately 25,000 different brands of prescription medicines. Thus,in accordance with the invention, the number of medications which arestored in the ROM memory can be chosen from the commercially availablebase medicines. The pharmacist filling the prescription controls theprogramming of the times for administration of a particular medicine bythe encoding of the beginning address of the block of programminginformation 100 on or in conjunction with prescription at which in theROM 56 is found the identification of the medication including size ofdosage, the times for dispensing dosages or time between dosages, thenumber of dosages to be taken and the appropriate data for creating avoice synthesized message of instructions for taking the medication. Inthe preferred form of the invention, the pharmacist will utilize auniversal bar code generator for encoding on the side of theprescription container or on the top thereof the beginning memoryaddress of the block of programming information 100 in the ROM 56 atwhich the data for programming that particular medication are stored. Itis only necessary to store medication identifications and times fortaking of dosages for generic brands of the medication for the reasonthat the voice synthesized message does not have to identify theparticular brand name or its generic identification. Thus, if thephysician writing the prescription requires that it be filled with abrand name, the pharmacist needs to only encode with the universal barcode writer or an equivalent code generator the beginning address in theROM 56 of the block of programming information 100 where the appropriategeneric medication programming data is stored.

When the dispensing of medication is programmed in accordance with theprogramming information stored at the blocks 100 in the ROM memory 56,the actual times at which medication is to be taken can be set in eitherof two manners. In the first manner, especially in the case ofmedications which must be taken around mealtime, the times for takingthe medication which are stored in the memory may be set at times atwhich patients conventionally would be eating if they follow a normalmeal schedule. In the alternative, the storage location associated witheach medication will store the interval between which dosages of themedication are to be taken. The actual time for taking each dosage ofthe medication is determined by the first dosage being taken at the timethat the code reader 50 reads the beginning address of the block ofprogramming data 100 in the ROM 56 with the subsequent times beingdetermined by the adding of the interval between dosages to the time ofthe first dosage. In either case, the total number of dosages which isstored in the addressed storage location 100 in the ROM 56 which isassociated with the particular medication is monitored by a softwarecounter which is associated with each of the storage locations 102 ofthe medications 1-N of FIG. 5. The number of dosages which has been takewhich is stored in the memory section 102 associated with that mediationis compared with the counter value. When the total number of dosages tobe taken is equal to the number which has actually been taken, thedosage schedule which is stored in the RAM memory 58 is automaticallyerased while the dosage history of each medication at location 102 isretained.

At any time during the alarm cycle in either the mode where the patientprograms the dosage intervals or where the programming is done inresponse to the reading of programming from the ROM memory 56, thepatient's dosage history may be outputted to form a permanent record bythe data base outputs, such as a printer. Additionally, the sameoutputting capability exists with respect to the temperature, bloodpressure and pulse rate storage functions described above.

An alternative embodiment of the invention which uses the code reader 50to automatically program the times for taking a medication reads theinformation for programming directly from the coding contained on theprescription container or provided in conjuction with the prescriptioninstead of obtaining it from a ROM. With this embodiment, the codedinformation as read by the code reader 50 is decoded by themicroprocessor 54 and used to automatically program the times for takingthe medication in a manner analogous to that described for the manualprogramming of the times for taking medication as described withreference to points 288-296 of FIG. 7.

While the invention has been described in terms of its preferredembodiment, it is intended that numerous modifications may be madethereto without departing from the spirit and scope of the invention asdefined in the appended claims.

What is claimed is:
 1. A medication clock comprising:(a) a plurality ofcompartments with each compartment being separately usable for holdingone or more medications to be taken by a patient, the medications beingchosen from prescription medications which have individual dosages to betaken at specific times, prescription medications to be taken under thecontrol of the patient on an as needed basis and nonprescriptionmedications to be taken under the control of the patient; (b) aprogrammable timing means which produces a medication dispensing signalindicating the time that a patient is to take one or more medications tobe taken at specific times; (c) means responsive to the medicationdispensing signal produced by the programmable timing means to producean alarm for alerting the patient that it is time to take a particularmedication, said means for alerting including a tone generator and aseparate visual display indicator located in proximity to each of saidcompartments, said tone generator producing an audible tone in responseto the medication dispensing signal and said visual display indicator inproximity to the compartment associated with the medication to be takenproducing a visual indication in response to the medication dispensingsignal; (d) means located in proximity to each of said compartmentswhich are separately activable by a patient for producing a patientacknowledgment signal that any one of the medications stored in one ofthe compartments has been taken including medications taken by thepatient in response to an alarm and medications taken without an alarm;(e) a memory coupled to the programmable timing means and to the meansfor producing each patient acknowledgment signal and having a pluralityof separate storage locations with each storage location beingassociated with one of the means for producing a patient acknowledgmentsignal and its associated compartment, each separate storage locationbeing used for storing the time and date of each patient acknowledgmentsignal produced by the associated means for producing a patientacknowledgment signal as an identification of the medication taken fromthe associated compartment and the time and date of taking themedication from the associated compartment; and (f) means coupled to thememory for providing an output of the identification of the medication,and time and date of each dosage of medication taken by the patientwhich is stored in the separate locations of the memory for each of themedications being taken by the patient including those medications takenunder the control of the programmable timing means in response to analarm as well as medications taken by the patient without an alarm.
 2. Amedication clock in accordance with claim 1 further comprising:(a)reading means coupled to said programmable timing means for readinginformation for controlling the programming of the identification of themedication to be taken, the time that each dosage is to be taken and thenumber of dosages; and (b) means responsive to the information read bythe reading means for causing the programmable timing means to beprogrammed to signal the time for taking each dosage of the medicationwhich is being taken under the control of the programmable timing meansthat has been programmed under the control of the information read bythe means for reading.
 3. A medication clock in accordance with claim 2wherein(a) said information read by the reading means is the beginningmemory address of a block containing a plurality of storage locationswhich store the identity of the medication to be taken, the number ofdosages to be taken and the time between dosages of the medication; and(b) said means for causing the programmable timer to be programmedincludes a preprogrammed memory containing a plurality of blocks withthe beginning location of each block being addressed by the informationread by the reading means, the blocks storing the identification of themedication to be taken, the time between dosages, and the number ofdosages to be taken; and causing the programming of the time for takingof any medication whose identity is stored at one of said blocks inaccordance with the time between dosages and the number of dosagesstored at said one block after said memory address is read by saidreading means by computing the times for taking each dosage of themedication based upon the desired time for taking the first dosage, thenumber of dosages to be taken and time between dosages read from thepreprogrammed memory.
 4. A medication clock in accordance with claim 3further comprising:(a) a speech synthesizing means for producing asynthesized voice message in response to a medication dispensing signalfor indicating that it is time to take any medication having dosagetimes which have been programmed by the means for causing the programmedtimer to be programmed, said speech synthesizing means informing thepatient of the identity of the medication to be taken and instructionsfor taking the medication; and wherein (b) each storage location hasstored therein information for creating a voice synthesized message tobe produced by said synthesized voice means in response to a medicationdispensing signal.
 5. A medication clock in accordance with claim 3wherein said code is the universal bar code and said means for readingis a means for reading and decoding the universal bar code.
 6. Amedication clock in accordance with claim 3 further comprising:(a) meansfor detecting when medications to be taken from the compartments areincompatible with each other; and (b) means responsive to the means fordetecting when medications are incompatible for producing an alarm.
 7. Amedication clock in accordance with claim 6 wherein the means fordetecting compares the identification of all of the medications to betaken from the compartments under the control of the programmable timingmeans with each other to detect incompatibility.
 8. A medication clockin accordance with claim 1 further comprising a speech synthesizingmeans, activated in response to a medication dispensing signal, whichproduces a speech synthesized voice message that it is time for apatient to take a medication.
 9. A medication clock in accordance withclaim 1 further comprising:(a) means for reading the blood pressure of apatient; (b) means coupled to the means for reading blood pressure forcausing the blood pressure which has been read to be stored in thememory along with the date and time of the reading of the blood pressureto permit the later readout of the patient's blood pressure history. 10.A medication clock in accordance with claim 1 further comprising:(a)means for reading the pulse rate of a patient; and (b) means coupled tothe means for reading pulse rate for causing the pulse rate which hasbeen read to be stored in the memory along with the date and time ofreading the pulse rate to permit the later readout of the patient'spulse rate history.
 11. A medication clock in accordance with claim 1further comprising:(a) means for taking the temperature of a patient;and (b) means coupled to the means for taking the temperature forcausing the temperature which has been taken to be stored in the memoryalong with the date and time of the taking of the temperature to permitthe later readout of the patient's temperature history.
 12. A medicationclock in accordance with claim 1 further comprising means, activated inresponse to a medication dispensing signal, for generating a messagedisplayed on a video display that it is time for a patient to take amedication.
 13. A medication clock in accordance with claim 1 furthercomprising means coupled to the means for providing an output forproviding a patient dosage record for each medication being takenincluding the time and date of each dosage taken.
 14. A medication clockin accordance with claim 13 wherein the means for producing a patientdosage record is a printer.
 15. A medication clock comprising:(a) aplurality of compartments with each compartment being separately usablefor holding one or more medications to be taken by a patient, themedications being chosen from prescription medications which haveindividual dosages to be taken at specific times, prescriptionmedications to be taken under the control of the patient on an as neededbasis and nonprescription medications to be taken under the control ofthe patient; (b) a programmable timing means which produces a medicationdispensing signal indicating the time that a patient is to take one ormore medications to be taken at specific times; (c) means responsive tothe medication dispensing signal produced by the programmable timingmeans to produce an alarm for alerting the patient that it is time totake a particular medication, said means for alerting including a tonegenerator and a separate visual display indicator located in proximityto each of said compartments, said tone generator producing an audibletone in response to the medication dispensing signal and said visualdisplay indicator in proximity to the compartment associated with themedication to be taken producing a visual indication in response to themedication dispensing signal; (d) means located in proximity to each ofsaid compartments which are separately activable by a patient forproducing a patient acknowledgment signal that any one of themedications stored in one of the compartments has been taken includingmedications taken by the patient in response to an alarm and medicationstaken without an alarm; (e) a memory coupled to the programmable timingmeans and to the means for producing each patient acknowledgment signalfor storing an identification of each medication taken and the time anddate of taking each dosage of each medication; and (f) means coupled tothe memory for providing an output of the identification of themedication taken, and time and date of each dosage of medication takenby the patient which is stored in memory for each of the medicationsbeing taken by the patient including those medications taken under thecontrol of the programmable timing means in response to an alarm andmedications taken without an alert.
 16. A medication clockcomprising:(a) plurality of compartments with each compartment beingseparately usable for holding one or more medications to be taken by apatient; (b) a programmable timing means which produces a medicationdispensing signal indicating the time that a patient is to take one ormore medications to be taken at specific times; (c) means responsive tothe medication dispensing signal produced by the programmable timingmeans to produce an alarm for alerting the patient that it is time totake a particular medication, said means for alerting including a tonegenerator and a separate visual display indicator located in proximityto each of said compartments, said tone generator producing an audibletone in response to the medication dispensing signal and said visualdisplay indicator in proximity to the compartment associated with themedication to be taken producing a visual indication in response to themedication dispensing signal; (d) means located in proximity to each ofsaid compartments which are separately activable by a patient forproducing a patient acknowledgment signal that any one of themedications stored in one of the compartments has been taken includingmedications taken by the patient in response to an alarm and medicationstaken without an alert; (e) a memory associated with said programmabletiming means which is coupled the means for producing each patientacknowledgment signal for storing an identification of each medicationtaken and the time and data of taking each dosage of each medication;and (f) means coupled to the memory for providing an output of theidentification of the medication, and the time and data of each dosageof medication taken by the patient which is stored in memory for each ofthe medications being taken by the patient.